package com.ruoyi.personnel.management.staff.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;
import java.sql.Timestamp;

/**
 * 员工信息表
 * personnel_staff_info
 * @author Drj 2021/6/28
 */
public class Staff extends BaseEntity {
    /**
     * 员工编号
     */
    @NotNull(message = "员工编号不能为空")
    @ApiModelProperty(value = "员工编号", required = true)
    private String staffId;
    /**
     * 员工名称
     */
    private String staffName;
    /**
     * 员工状态
     */
    private String staffStatus;
    /**
     * 员工性别
     */
    private String staffSex;

    /**
     * 民族编号
     */
    private Integer nationId;

    /**
     * 民族名称
     */
    private String nationName;
    /**
     * 员工籍贯
     */
    private String staffNativePlace;
    /**
     * 员工身份证号
     */
    private String staffIdentityId;
    /**
     * 员工职位编号
     */
    private Long postId;
    /**
     * 员工职位名称
     */
    private String postName;
    /**
     * 部门编号
     */
    private Long deptId;
    /**
     * 部门名称
     */
    private String deptName;
    /**
     * 员工联系方式
     */
    private String staffPhone;
    /**
     * 员工现住地址
     */
    private String staffAddress;
    /**
     * 入职时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private java.sql.Timestamp staffHireDate;
    /**
     * 合同到期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private java.sql.Timestamp staffContractExpirationDate;
    /**
     * 离职时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private java.sql.Timestamp staffLeaveDate;
    /**
     * 备注
     */
    private String remark;

    public String getStaffId() {
        return staffId;
    }

    public void setStaffId(String staffId) {
        this.staffId = staffId;
    }

    public String getStaffName() {
        return staffName;
    }

    public void setStaffName(String staffName) {
        this.staffName = staffName;
    }

    public String getStaffStatus() {
        return staffStatus;
    }

    public void setStaffStatus(String staffStatus) {
        this.staffStatus = staffStatus;
    }

    public String getStaffSex() {
        return staffSex;
    }

    public void setStaffSex(String staffSex) {
        this.staffSex = staffSex;
    }

    public String getStaffNativePlace() {
        return staffNativePlace;
    }

    public void setStaffNativePlace(String staffNativePlace) {
        this.staffNativePlace = staffNativePlace;
    }

    public String getStaffIdentityId() {
        return staffIdentityId;
    }

    public void setStaffIdentityId(String staffIdentityId) {
        this.staffIdentityId = staffIdentityId;
    }

    public Long getPositionInfoId() {
        return postId;
    }

    public void setPositionInfoId(Long positionInfoId) {
        this.postId = positionInfoId;
    }

    public String getPositionInfoName() {
        return postName;
    }

    public void setPositionInfoName(String positionInfoName) {
        this.postName = positionInfoName;
    }

    public Long getDepartmentId() {
        return deptId;
    }

    public void setDepartmentId(Long departmentId) {
        this.deptId = departmentId;
    }

    public String getDepartmentName() {
        return deptName;
    }

    public void setDepartmentName(String departmentName) {
        this.deptName = departmentName;
    }

    public String getStaffPhone() {
        return staffPhone;
    }

    public void setStaffPhone(String staffPhone) {
        this.staffPhone = staffPhone;
    }

    public String getStaffAddress() {
        return staffAddress;
    }

    public void setStaffAddress(String staffAddress) {
        this.staffAddress = staffAddress;
    }

    public Timestamp getStaffHireDate() {
        return staffHireDate;
    }

    public void setStaffHireDate(Timestamp staffHireDate) {
        this.staffHireDate = staffHireDate;
    }

    public Timestamp getStaffContractExpirationDate() {
        return staffContractExpirationDate;
    }

    public void setStaffContractExpirationDate(Timestamp staffContractExpirationDate) {
        this.staffContractExpirationDate = staffContractExpirationDate;
    }

    public Timestamp getStaffLeaveDate() {
        return staffLeaveDate;
    }

    public void setStaffLeaveDate(Timestamp staffLeaveDate) {
        this.staffLeaveDate = staffLeaveDate;
    }

    public Integer getNationId() {
        return nationId;
    }

    public void setNationId(Integer nationId) {
        this.nationId = nationId;
    }

    public String getNationName() {
        return nationName;
    }

    public void setNationName(String nationName) {
        this.nationName = nationName;
    }

    @Override
    public String getRemark() {
        return remark;
    }

    @Override
    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public String toString() {
        return "Staff{" +
                "staffId='" + staffId + '\'' +
                ", staffName='" + staffName + '\'' +
                ", staffStatus='" + staffStatus + '\'' +
                ", staffSex='" + staffSex + '\'' +
                ", nationId=" + nationId +
                ", nationName='" + nationName + '\'' +
                ", staffNativePlace='" + staffNativePlace + '\'' +
                ", staffIdentityId='" + staffIdentityId + '\'' +
                ", postId=" + postId +
                ", postName='" + postName + '\'' +
                ", deptId=" + deptId +
                ", deptName='" + deptName + '\'' +
                ", staffPhone='" + staffPhone + '\'' +
                ", staffAddress='" + staffAddress + '\'' +
                ", staffHireDate=" + staffHireDate +
                ", staffContractExpirationDate=" + staffContractExpirationDate +
                ", staffLeaveDate=" + staffLeaveDate +
                ", remark='" + remark + '\'' +
                '}';
    }
}
